package com.rimi.service;

import com.github.pagehelper.PageInfo;
import com.rimi.bean.YqzcGoods;
import com.rimi.model.dto.GoodsListDto;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface GoodsService {

    /**
     * 通过（产品类型goodsType(必填项)）进行产品列表筛选（后面内容非必填，可以模糊查询）（产品分类classification，品牌brand，价格区间price boGoodsPrice下限  upGoodsPrice上限）
     * @param pageNum 当前页数
     * @param pageSize 每页多少条
     * @param goodsType 商品类型
     * @param goodsClassification 商品分类
     * @param goodsBrand 商品品牌
     * @param boGoodsPrice 最低价格
     * @param upGoodsPrice 最高价格
     * @return 商品列表
     */
    PageInfo searchGoodsList(Integer pageNum,Integer pageSize,String goodsType,String goodsClassification, String goodsBrand, Integer boGoodsPrice, Integer upGoodsPrice);

    /**
     * 顶部搜索框
     * @return 全部商品
     */
    PageInfo topSearch(String goodsName,Integer pageNum,Integer pageSize);

    /**
     * 根据sku查询商品
     * @param goodsSku 商品sku
     * @return 商品
     */
    YqzcGoods findGoodsBySku(Integer goodsSku);

    /**
     * 查询租赁的商品
     * @param goodsType 类型 租赁
     * @return 商品list
     */
    PageInfo<GoodsListDto> findAllGoodsByType(String goodsType, Integer pageNum, Integer pageSize);

    /**
     * 根据类型和分类查找商品
     * @param pageNum 页数
     * @param pageSize 每页条数
     * @param goodsType 商品分类
     * @param goodsClassify 商品类型
     * @return 商品列表
     */
    PageInfo findGoodsByTypeAndClassify(Integer pageNum, Integer pageSize, String goodsType, String goodsClassify);
    /**
     * 获取随机商品
     * @return 单独随机商品
     */
    List<YqzcGoods> findAllGoods();
}
